﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CanDoo.Core;
using CanDoo.Data;
using CanDoo.Contracts;
using CanDoo.Oil.Core.Models;
using CanDoo.Core.Data;
using CanDoo.Oil.Core.DTOs;

namespace CanDoo.Oil.Core.Contracts
{
    /// <summary>
    /// 业务契约——API操作日志
    /// </summary>
    public interface IAPIOperateLogContract : IServiceBaseCore<APIOperateLog>, IServiceBase<APIOperateLog>
    {
        /// <summary>
        /// 1.1.4取油码取油状态上报:  终端完成取油操作时，将取油状态上报至后台
        /// </summary>
        /// <param name="status">取油状态信息</param>
        /// <returns>操作结果</returns>
        Task<OperationResult> AddOilCodeStatusAsync(OilCodeStatus status);

        /// <summary>
        /// 1.1.10会员取油成功状态上报 : 会员取油成功后，将取油情况上报后台
        /// </summary>
        /// <param name="oilTankStatus">取油请求报文</param>
        /// <returns>操作结果</returns>
        OperationResult AddOilTankStatus(OilTankStatus oilTankStatus);
        
        /// <summary>
        /// 1.1.12清洗操作记录查询 根据清洗时间、清洗管道、清洗门店、清洗终端编号，查询最近一次清洗记录
        /// </summary>
        /// <param name="cleanRecordReq"></param>
        /// <returns></returns>
        OperationResult<CleanRecordReqInfo> GetLastCleanRecord(CleanRecordReq cleanRecordReq);

        /// <summary>
        /// 1.1.13清洗操作记录上传 将清洗操作记录上传到后台
        /// </summary>
        /// <param name="cleanRecordInfo"></param>
        /// <returns></returns>
        OperationResult AddCleanRecord(CleanRecordRepInfo cleanRecordInfo);

        /// <summary>
        /// 1.1.14管理员调试出油记录上传   管理员在登录状况下，调试出油记录上传
        /// </summary>
        /// <param name="debugOilRecord"></param>
        /// <returns></returns>
        OperationResult AddDebugOilRecord(DebugOilRecord debugOilRecord);

        /// <summary>
        /// 1.1.15 状态上报
        /// </summary>
        /// <param name="statusInfo"></param>
        /// <returns></returns>
        OperationResult AddStatusInfo(StatusInfo statusInfo);
    }
}

